7z Format

7z is a new archive format, providing high compression ratio.

The main features of the 7z format:

7z has open architecture, so it can support any new compression methods.

Now the following methods are integrated into 7z:

Method Description
LZMA Improved and optimized version of LZ77 algorithm
PPMD Dmitry Shkarin's PPMdH with small changes
BCJ Converter for 32-bit x86 executables
BCJ2 Converter for 32-bit x86 executables
BZip2 Standard BWT algorithm
Deflate Standard LZ77-based algorithm

LZMA is the default and general compression method of 7z format. The main features of the LZMA method:

The LZMA compression algorithm is very suitable for embedded applications. If you want to use LZMA code, you can ask for consultations, custom code programming, and required developer licenses at

www.7-zip.org/support.html

7-Zip also supports encryption with AES-256 algorithm. This algorithm uses cipher key with length of 256 bits. To create that key 7-Zip uses derivation function based on SHA-256 hash algorithm. A key derivation function produces a derived key from text password defined by user. For increasing the cost of exhaustive search for passwords 7-Zip uses big number of iterations to produce cipher key from text password.

Tips for selecting password length

We will estimate the time required for an exhaustive password search attack, when the password is a random sequence of lowercase Latin letters.

We suppose that one user can check 10 passwords per second and organization (with budget about $1 billion) can check 10 billions passwords per second. We also suppose that each 2 years processor doubles it's performance, so each additional Latin letter of long password adds about 9 years against exhaustive key search attack.

So we have such estimated time for attack:

Password Length Single User Attack Organization Attack
1 2 s 1 s
2 1 min 1 s
3 30 min 1 s
4 12 hours 1 s
5 14 days 1 s
6 1 year 1 s
7 10 years 1 s
8 19 years 20 s
9 26 years 9 min
10 37 years 4 hours
11 46 years 4 days
12 55 years 4 months
13 64 years 4 years
14 73 years 13 years
15 82 years 22 years
16 91 years 31 years
17 100 years 40 years